1. Field of the Invention
The present invention relates to data decoding, and more particularly, to a soft demodulation method and apparatus.
2. Description of the Related Art
In an environment where inter symbol interference (ISI) exists, such as a high-density optical recording medium, data is modulated by using run-length limited (RLL) codes.
When conventional RLL codes are decoded, a channel demodulator, such as a Viterbi decoder, detects codewords from a signal input via a channel, and an RLL decoder decodes the codewords into datawords by referring to a decoding table.
Recently, soft demodulators and soft decoders have been increasingly used for a variety of purposes. The Viterbi decoder directly outputs a codeword, which contains an error and simply has a value of “1” or “−1”. This type of modulation is called hard demodulation. In soft demodulation, however, a soft demodulator receives a channel signal and outputs a probability value of a codeword. In other words, the output of the soft demodulator has an analog value, such as “0.8” or “−0.8”, containing the probability of a codeword having a value of 1 or −1. The soft demodulator receives data indicating the probability value of the codeword and outputs a probability value of a dataword. Then, a soft encoder, such as a turbo encoder, receives the probability of the dataword from the soft demodulator and encodes the codeword into the dataword.
A turbo decoding process that requires soft demodulation is taught by Laura L. McPheters and Steven W. McLaughlin in “Turbo-Coded Optical Recording Channels with DVD Minimum Mark Size,” IEEE Transactions on Magnetics, Vol. 38, No. 1, January 2002, pp. 298˜302.
FIG. 1 is a block diagram of a conventional encoding/decoding apparatus. Referring to FIG. 1, an encoding/decoding apparatus 100 includes a turbo/low density parity check code (LDPC) encoder 110, a modulator 120, a reader/writer 130, a soft demodulator 150, and a turbo/LDPC decoder 160.
Data is input to the turbo/LDPC encoder 110, which encodes the data by using a soft encoding method, such as an LDPC encoding method or a turbo encoding method. The modulator 120 modulates data output from the turbo/LDPC encoder 110 in a predetermined demodulation manner that uses, for example, an RLL code. The reader/writer 130 records the modulated data on a recording medium 140 or reads data from the recording medium 140. The soft demodulator 150 receives data indicating a probability value of a codeword from the reader/writer 130 and then outputs a log likelihood ratio (LLR), which corresponds to a probability value of each bit of a dataword. The turbo/LDPC decoder 160 carries out a soft decoding on data output from the soft demodulator 150 taking into consideration how the corresponding data has been encoded. Thereafter, the turbo/LDPC decoder 160 outputs the soft-decoded data.
The soft demodulator 150 obtains the LLR by calculating a posteriori probability (APP) (dk=1) and APP(dk=0). APP(dk=1) represents the probability of demodulated data having a value of “1”, and APP(dk=0) represents the probability of demodulated data having a value of “0”. APP(dk=1) and APP(dk=0) are obtained in the following manner. If a codeword, which is used for determining a dataword, is comprised of N bits, values of (rm−2*cm−1))2 (where m=1, . . . , N) for bits of each codeword that sets a bit of the dataword to 1 are summed up. In short, APP(dk=1) can be obtained by summing up an exponential value of (rm−2*cm−1))2 for each codeword that sets a bit of the dataword to 1, which is shown in Equation (1) below.
                              APP          ⁡                      (                                          d                k                            =              1                        )                          =                              ∑                          j              ∈                                                S                  1                                ⁡                                  (                  k                  )                                                              ⁢                      exp            ⁡                          [                                                r                  m                  j                                -                                                      (                                                                  2                        *                                                  c                          m                          j                                                                    -                      1                                        )                                    2                                            ]                                                          (        1        )            
In Equation (1), j indicates that a j-th dataword has a value of 1.
Likewise, APP(dk=0) is obtained using Equation (2) below.
                              APP          ⁡                      (                                          d                k                            =              0                        )                          =                              ∑                          j              ∈                                                S                  0                                ⁡                                  (                  k                  )                                                              ⁢                      exp            ⁡                          [                                                r                  m                  j                                -                                                      (                                                                  2                        *                                                  c                          m                          j                                                                    -                      1                                        )                                    2                                            ]                                                          (        2        )            
LLR(dk) is obtained by exponentiating a ratio between the probability APP(dk=0) of the j-th bit of the dataword dk having a value of 0 and the probability APP(dk=1) of the j-th bit of the dataword dk having a value of 1, a process which is shown in Equation (3) below. LLR(dk) is an output of the soft demodulator 150.
                              LLR          ⁡                      (                          d              k                        )                          =                  Log          ⁢                                    (                                                APP                  ⁡                                      (                                          d                      k                                        )                                                  =                1                            )                                      (                                                APP                  ⁡                                      (                                          d                      k                                        )                                                  =                0                            )                                                          (        3        )            
If it is too complicated to exponentiate the ratio between APP(dk=1) and APP(dk=0), LLR(dk) can be obtained by subtracting APP(dk=0) from APP(dk=1). The structure of the soft demodulator 150, which calculates LLR(dk) in this manner, is illustrated in FIG. 2.
Referring to FIG. 2, the soft demodulator 150 includes a decoding table 151, an entry calculator 152, a maximum detector 153, and an LLR calculator 154. The decoding table 151 is illustrated in FIG. 3.
The entry calculator 152 performs a predetermined calculation on a read code signal using each entry of the decoding table 151. Hereinafter, the predetermined calculation will be described more fully with reference to FIG. 4. More specifically, the entry calculator 152 associates each bit of an input code signal 410 with each bit of the entry 420. If a bit of the entry 420, corresponding to a given bit of the input code signal 410, has a value of 0, the given bit of the input code signal 410 is multiplied by −1. On the other hand, if a bit of the entry 420, corresponding to the given bit of the input code signal 410, has a value of 1, the given bit of the input code signal 410 is multiplied by +1. The entry calculator 152 performs this type of multiplication on each bit of the input code signal 410 and then sums up all multiplication results, thus obtaining a result 430 of the predetermined calculation.
For example, assume that the input code signal 410 is “r0r1 . . . r17” and the entry is “000101 . . . 100”, as shown in FIG. 4. Because the fourth, sixth, ninth, eleventh, fourteenth, and sixteenth bits of the entry 420 have a value of 1 and the other bits of the entry 420 have a value of 0, r3, r5, r8, r10, r13, and r15 are multiplied by +1, and the other bits of the are multiplied by −1. Thereafter, the multiplication results are summed up. The entry calculator 152 carries out the predetermined calculation on the input code signal 410 as many times as the number of entries of the decoding table 151.
The maximum detector 153 receives as many results of the predetermined calculation from the entry calculator 152 as the number of entries of the decoding table 151 and detects a maximum among the predetermined calculation results.
The LLR calculator 154 calculates LLR(dk) by subtracting a maximum regarding “0” from a maximum regarding “1”, by a process as shown in Equation (4) below. Thereafter, the LLR calculator 154 outputs LLR(dk).
                                                                        LLR                ⁡                                  (                                      d                    k                                    )                                            =                            ⁢                                                                    max                                          j                      ∈                                                                        S                          1                                                ⁡                                                  (                          k                          )                                                                                                      ⁢                                      [                                                                  ∑                                                  m                          =                          0                                                                          t                          -                          1                                                                    ⁢                                                                        r                          m                          j                                                *                        2                        ⁢                                                  (                                                                                    c                              m                              j                                                        -                            1                                                    )                                                                                      ]                                                  -                                                                                                      ⁢                                                max                                      j                    ∈                                                                  S                        0                                            ⁡                                              (                        k                        )                                                                                            ⁢                                  [                                                            ∑                                              m                        =                        0                                                                    t                        -                        1                                                              ⁢                                                                  r                        m                        j                                            *                      2                      ⁢                                              (                                                                              c                            m                            j                                                    -                          1                                                )                                                                              ]                                                                                        (        4        )            
LLR(dk+1) can be obtained by simply substituting k+1 into Equation (4), as shown in Equation (5) below.
                                                                        LLR                ⁡                                  (                                      d                                          k                      +                      1                                                        )                                            =                            ⁢                                                                    max                                          j                      ∈                                                                        S                          1                                                ⁡                                                  (                                                      k                            +                            1                                                    )                                                                                                      ⁢                                      [                                                                  ∑                                                  m                          =                          0                                                                          t                          -                          1                                                                    ⁢                                                                        r                          m                          j                                                *                        2                        ⁢                                                  (                                                                                    c                              m                              j                                                        -                            1                                                    )                                                                                      ]                                                  -                                                                                                      ⁢                                                max                                      j                    ∈                                                                  S                        0                                            ⁡                                              (                                                  k                          +                          1                                                )                                                                                            ⁢                                  [                                                            ∑                                              m                        =                        0                                                                    t                        -                        1                                                              ⁢                                                                  r                        m                        j                                            *                      2                      ⁢                                              (                                                                              c                            m                            j                                                    -                          1                                                )                                                                              ]                                                                                        (        5        )            
In Equation (5), S0(k+1) indicates a set of entries of the decoding table 151 of FIG. 3, and S1(k+1) indicates a set of entries of a decoding table, which is very similar to the decoding table 151.
If soft modulation is carried out using the decoding table 151, as many as 85,000 calculations are required. Here, 85,000 is obtained by multiplying a total number of additions and subtractions using bits of each entry of the decoding table 151, i.e., 17, by the number of entries of the decoding table 151, i.e., 5,000.
As described above, in the related art, as the size of an APP decoding table used for soft demodulation increases, the time taken to calculate an LLR increases, and the APP decoding table becomes remarkably complicated.